package com.mystudy.leetcode.contest.p_5133;

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @author 周志龙
 * @Email 15216876513@163.com
 * @Date on 2019/7/21 11:21
 * @Description 绝对值表达式的最大值
 */
public class Solution {
    private static final Logger LOGGER = LoggerFactory.getLogger(Solution.class);

    @Test
    public void test() {
        int[] arr1 = new int[]{1, -2, -5, 0, 10};
        int[] arr2 = new int[]{0, -2, -1, -7, -4};
        int i = maxAbsValExpr(arr1, arr2);
        LOGGER.debug("i = [{}]", i);
    }

    //|arr1[i] - arr1[j]| + |arr2[i] - arr2[j]| + |i - j|
    public int maxAbsValExpr(int[] arr1, int[] arr2) {
        int max = 0;
        int m = 0;
        int n = 0;
        for (int i = 0; i < arr1.length; i++) {
            for (int j = 0; j < arr1.length; j++) {
                int a1 = (arr1[i] - arr1[j])%2;
                int a2 = (arr2[i] - arr2[j])%2;
                int a3 = i - j;
                a1 = a1 > 0 ? a1 : -1 * a1;
                a2 = a2 > 0 ? a2 : -1 * a2;
                a3 = a3 > 0 ? a3 : -1 * a3;
                int i1 = a1 + a2 + a3;
                if (i1 > max) {
                    max = i1;
                    m = i;
                    n = j;
                }
            }
        }

        int a1 = (arr1[m] - arr1[n]);
        int a2 = (arr2[m] - arr2[n]);
        int a3 = m - n;
        a1 = a1 > 0 ? a1 : -1 * a1;
        a2 = a2 > 0 ? a2 : -1 * a2;
        a3 = a3 > 0 ? a3 : -1 * a3;
        return a1+a2+a3;
    }
}
